﻿using System;

namespace WYJ.Log.LogServices
{
    /// <summary>
    /// 提供最轻量易用的的日志功能。
    /// </summary>
    public interface ILogger : IDisposable
    {
        /// <summary>
        /// 输出 Debug 及以上级别的日志
        /// </summary>
        /// <param name="message"></param>
        void Debug(string message);

        /// <summary>
        /// 输出 一般 及以上级别的日志
        /// </summary>
        void Info(string message);

        /// <summary>
        /// 输出 严重 及以上级别的日志
        /// </summary>
        void Warn(string message);

        /// <summary>
        /// 输出 错误 及以上级别的日志
        /// </summary>
        void Error(string message);

        /// <summary>
        /// 输出 致命 级别的日志
        /// </summary>
        void Fatal(string message);

        /// <summary>
        /// 暂停输出日志
        /// </summary>
        /// <param name="logLevel"></param>
        void Pause(LogLevel logLevel);

        /// <summary>
        /// 暂停输出日志
        /// </summary>
        void PauseAll();

        /// <summary>
        /// 恢复输出日志
        /// </summary>
        /// <param name="logLevel"></param>
        void Resume(LogLevel logLevel);

        /// <summary>
        /// 恢复输出日志
        /// </summary>
        void ResumeAll();
    }
}